package cn.zj.admin.modules.issues.domain;

import cn.zj.admin.modules.issues.type.Status;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;

import java.io.Serializable;
import java.util.Date;

/**
 * 项目
 * @author xi.yang
 * @create 2020-07-08 17:43
 **/
@Document(collection = "t_pm_project")
public class Project implements Serializable {
    @Id
    private String id;
    /**
     * 父级id
     */
    @Indexed
    private String pid;
    /**
     * 项目名
     */
    @Indexed
    private String name;
    /**
     * 详细描述
     */
    @Indexed
    private String desc;
    /**
     * 负责人
     */
    @Indexed
    private Long userId;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 预计开始时间
     */
    private Date startTime;
    /**
     * 预计结束时间
     */
    private Date endTime;
    /**
     * 实际完成时间
     */
    private Date realEndTime;
    /**
     * 项目状态
     */
    @Indexed
    private Status status;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getPid() {
        return pid;
    }

    public void setPid(String pid) {
        this.pid = pid;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public Date getRealEndTime() {
        return realEndTime;
    }

    public void setRealEndTime(Date realEndTime) {
        this.realEndTime = realEndTime;
    }

    public Status getStatus() {
        return status;
    }

    public void setStatus(Status status) {
        this.status = status;
    }
}
